﻿using System.Data;
using DataAccess;
using Model;
using ViewModel;

namespace Business
{
    public class VentasBusiness
    {
        public double TotalVentas { get; set; }
        public double TotalVentasContado { get; set; }
        public double TotalVentasCredito { get; set; }

        public VentasViewModel ObtenerVentas(int anio, int mes)
        {
            var ventasDataAccess = new VentasDataAccess();
            var ventas = new VentasViewModel
            {
                DatosVentas = ventasDataAccess.ObtenerVentas(anio, mes)
            };

            return ventas;
        }

        public void InsertarActualizarVentas(Ventas ventas)
        {
            var ventasDataAccess = new VentasDataAccess();
            ventasDataAccess.InsertarActualizarVentas(ventas);
        }

        public DataTable ObtenerVentasTotales(int anio, int mesInicio, int mesFin)
        {
            var ventasDataAccess = new VentasDataAccess();
            var ventasTotalesData = ventasDataAccess.ObtenerVentasTotales(anio, mesInicio, mesFin);
            TotalVentas = 0;

            foreach (DataRow fila in ventasTotalesData.Rows)
            {
                foreach (DataColumn columna in ventasTotalesData.Columns)
                {
                    double datoParcial;
                    double.TryParse(fila[columna.ColumnName].ToString(), out datoParcial);
                    TotalVentas = TotalVentas + datoParcial;
                }
            }

            return ventasTotalesData;
        }

        public DataTable ObtenerVentasContado(int anio, int mesInicio, int mesFin)
        {
            var ventasDataAccess = new VentasDataAccess();
            var ventasContadoData = ventasDataAccess.ObtenerVentasContado(anio, mesInicio, mesFin);
            TotalVentasContado = 0;

            foreach (DataRow fila in ventasContadoData.Rows)
            {
                foreach (DataColumn columna in ventasContadoData.Columns)
                {
                    double datoParcial;
                    double.TryParse(fila[columna.ColumnName].ToString(), out datoParcial);
                    TotalVentasContado = TotalVentasContado + datoParcial;
                }
            }

            return ventasContadoData;
        }

        public DataTable ObtenerVentasCredito(int anio, int mesInicio, int mesFin)
        {
            var ventasDataAccess = new VentasDataAccess();
            var ventasCreditoData = ventasDataAccess.ObtenerVentasCredito(anio, mesInicio, mesFin);
            TotalVentasCredito = 0;

            foreach (DataRow fila in ventasCreditoData.Rows)
            {
                foreach (DataColumn columna in ventasCreditoData.Columns)
                {
                    double datoParcial;
                    double.TryParse(fila[columna.ColumnName].ToString(), out datoParcial);
                    TotalVentasCredito = TotalVentasCredito + datoParcial;
                }
            }

            return ventasCreditoData;
        }
    }
}
